///*
// * Licensed under the License, Version 1.0 (the "License");
// * You may obtain a copy of the License at
// *   http://www.heavenick.com/license/License 
// * Copyright information Heavenick to all.
// * Unless the applicable legal requirements or written 
// * consent, can use or around the code, and no warranties 
// * of any kind and state responsibility.
// */
//package com.heavenick.core.config;
//
//import java.sql.Connection;
//import java.util.Properties;
//
//import javax.sql.DataSource;
//
//import org.apache.ibatis.session.SqlSessionFactory;
//import org.apache.ibatis.session.SqlSessionManager;
//import org.apache.ibatis.session.TransactionIsolationLevel;
//import org.apache.ibatis.transaction.Transaction;
//import org.apache.ibatis.transaction.TransactionFactory;
//import org.mybatis.guice.MyBatisModule;
//
//import com.google.inject.Guice;
//import com.google.inject.Injector;
//import com.google.inject.Provider;
//
///**
// * 
// * @author Heavenick
// * @version 1.0
// * @date 2012-8-6 下午10:14:49
// */
//public class ClassBootstrap {
//
//	public void configProperties() {
//		final Class<? extends Provider<DataSource>> dataSourceProviderType = new Provider<DataSource>() {
//
//			public DataSource get() {
//				// TODO Auto-generated method stub
//				return null;
//			}
//
//		}.getClass();
//		final Class<? extends TransactionFactory> txFactoryClass = new TransactionFactory() {
//
//			public void setProperties(Properties props) {
//				// TODO Auto-generated method stub
//
//			}
//
//			public Transaction newTransaction(Connection conn) {
//				// TODO Auto-generated method stub
//				return null;
//			}
//
//			public Transaction newTransaction(DataSource dataSource,
//					TransactionIsolationLevel level, boolean autoCommit) {
//				// TODO Auto-generated method stub
//				return null;
//			}
//
//		}.getClass();
//
//		Injector injector = Guice.createInjector(new MyBatisModule() {
//			@Override
//			protected void initialize() {
//				environmentId("development");
//				bindDataSourceProviderType(dataSourceProviderType);
//				bindTransactionFactoryType(txFactoryClass);
//			}
//		});
//		SqlSessionFactory sessionFactory = injector
//				.getInstance(SqlSessionFactory.class);
//		SqlSessionManager sessionManager = injector
//				.getInstance(SqlSessionManager.class);
//		// MyMapper mapper = injector.getInstance(MyMapper.class);
//	}
//
//	public void configAliases() {
//		MyBatisModule modual = new MyBatisModule() {
//
//			@Override
//			protected void initialize() {
//
//				addSimpleAlias(com.heavenick.core.model.pojo.Simple.class);
//
//				addAlias("simple").to(
//						com.heavenick.core.model.pojo.Simple.class);
//
//			}
//		};
//	}
//
//	public void configTypeHandlers() {
//		MyBatisModule module = new MyBatisModule() {
//			@Override
//			protected void initialize() {
//
//				handleType(java.util.Date.class).with(
//						com.heavenick.core.type.DateTypeHandler.class);
//
//			}
//		};
//	}
//
//	public void configInterceptorPlugins() {
//
//		MyBatisModule module = new MyBatisModule() {
//
//			@Override
//			protected void initialize() {
//				//TODO 拦截器插件
//				// addInterceptorClass(com.acme.dao.BarInterceptor.class);
//				//TODO 这是配置objectFactory
////				bindObjectFactoryType(com.acme.MyObjectFactory.class);
//			}
//
//		};
//
//	}
//
//	public void configMapper() {
//
//		MyBatisModule module = new MyBatisModule() {
//
//			@Override
//			protected void initialize() {
//				// addMapperClass(com.acme.dao.BarMapper.class);
//			}
//
//		};
//
//	}
//}